package yl.hs.bmipfull.service.system;

import yl.hs.bmipfull.pojo.system.AppSettingEntity;
import yl.hs.bmipfull.service.IBaseService;
import yl.hs.bmipfull.viewmodels.SubmitModel;

import java.util.List;
import java.util.Map;

/*
 * IAppSettingService 系统设置数据服务接口
 * @category 系统管理——系统设置
 * @author 谢景广
 * @date 2021-05-13
 */
public interface IAppSettingService extends IBaseService {

    /**
     * 获取部门所有系统设置
     *
     * @param unitSN 部门编号
     * @return
     */
    List<AppSettingEntity> queryAllUnitSn(String[] unitSN);

    /**
     * 保存新创建的系统设置项
     *
     * @param model 系统设置项表单信息
     * @return
     */
    Integer saveCreateAppSet(SubmitModel model);

    /**
     * 保存用户修改的系统设置项信息
     *
     * @param model 用户修改的系统设置项表单信息
     * @return
     */
    Integer saveUpdateAppSets(Map<String, Object> model);

    /**
     * 检查系统设置项代码是否存在
     *
     * @param code   设置项代码
     * @param unitSN 单位编号
     * @return
     */
    Boolean checkSetParamCodeExists(String code, String unitSN);

    /**
     * 获取部门所有系统设置
     *
     * @param unitSN 部门编号
     * @return
     */
    Map<String, Object> querySetObjByUnitSn(String[] unitSN);

    /**
     * 根据参数代码和单位编号获取系统设置信息
     * @param code 参数代码
     * @param unitSN 单位编号
     * @return 系统设置信息
     */
    AppSettingEntity findByCode(String code, String unitSN);

    /**
     * 根据参数代码获取系统设置信息
     * @param code 参数代码
     * @return 系统设置信息
     */
    AppSettingEntity getByParamCode(String code);

    /**
     * 保存系统设置信息
     * @param stVers 创建好的系统设置信息
     * @return
     */
    int save(AppSettingEntity stVers);
}
